package com.xuecheng.content.service;

import com.xuecheng.content.model.dto.CoursePreviewDto;
import com.xuecheng.content.model.po.CoursePublish;

import java.io.File;

/**
 * 课程预览、发布接口
 */
public interface CoursePublishService {
    /**
     * 根据课程id获取课程预览信息
     * @param courseId  课程id
     * @return  package com.xuecheng.content.model.dto.CoursePreviewDto;
     */
    CoursePreviewDto getCoursePreviewInfo(Long courseId);
    /**
     * @description 提交审核
     * @param courseId  课程id
     * @return void
     * @author Mr.M
     * @date 2022/9/18 10:31
     */
    void commitAudit(Long companyId,Long courseId);
    /**
     * 发布课程
     * @param companyId
     * @param courseId
     */
    void publishCourse(Long companyId, Long courseId);
    /**
     * @description 课程静态化
     * @param courseId  课程id
     * @return File 静态化文件
     * @author Mr.M
     * @date 2022/9/23 16:59
     */
    public File generateCourseHtml(Long courseId);
    /**
     * @description 上传课程静态化页面
     * @param file  静态化文件
     * @return void
     * @author Mr.M
     * @date 2022/9/23 16:59
     */
    public void  uploadCourseHtml(Long courseId,File file);
    /**
     * desciption 查询课程信息
     * @param courseId
     * @return com.xuecheng.content.model.po.CoursePublish
     * @Date 2023/4/1 16:30
     */
    public CoursePublish getCoursePunlish(Long courseId);
    /**
     * desciption 查询课程信息(缓存)
     * @param courseId
     * @return com.xuecheng.content.model.po.CoursePublish
     * @Date 2023/4/1 16:30
     */
    public CoursePublish getCoursePunlishCache(Long courseId);
}
